今天我們就來自架json-server來練習api串接
正常會使用fetch或是ajax
fetch使用方法推薦這個網站的教學:https://www.oxxostudio.tw/articles/201908/js-fetch.html
由於小弟我的fetch api也不是很熟悉,就小說一下用fetch時有遇到的一些問題
如果你的json格式有問題,會開不了json-server在進行上傳的時候例如PUT也會無法成功上傳
fetch的get可以獲取資料不代表PUT可以成功回傳喔,因你的json格式而異
簡單來說與其說是抓取api會很困難?倒是覺得把檔案格式搞懂還比較困難(對我目前而言
fetch與ajax,ajax也有用過一些,不過我是先使用fetch再用ajax,覺得fetch就是精簡版的ajax,且在格式上fetch我是覺得比較好看懂
1.首先先去安裝node.js:https://nodejs.org/zh-tw
Node.js是一個服務器端腳本環境,允許JavaScript在服務器上運行。JSON Server使用Node.js来創建一个本地服務器,以便客戶端應用程序可以模擬與後端API交互。
2.再來安裝npm
npm install -g json-server
3.新增一個json檔,也可不新增直接打你的檔名,它會自動生成一個預設的檔案如下
{
"posts": [
{
"id": 1,
"title": "json-server",
"author": "typicode"
}
],
"comments": [
{
"id": 1,
"body": "some comment",
"postId": 1
}
],
"profile": {
"name": "typicode"
}
}
4.啟動伺服器
json-server --watch 你的檔名.json
5.關閉伺服器ctrl+c
好了就會有url了
可以隨便改改標頭(posts/comments/profile)測試測試
然後剛開始用json-server可能會出問題,以下為我遇到的問題,並且修正的方法
報錯內容
json-server : 因為這個系統上已停用指令碼執行,所以無法載入 C:\Users\admin\AppData\Roaming\npm\json-server.ps1 檔案。如需詳細資訊,請
參閱 about_Execution_Policies,網址為 https:/go.microsoft.com/fwlink/?LinkID=135170。
位於 線路:1 字元:1
+ json-server --watch db.json
+ ~~~~~~~~~~~
+ CategoryInfo : SecurityError: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
這個錯誤是由於 PowerShell 執行政策 (Execution Policy) 導致,解決方法
1.使用系統管理員執行
2.下指令查看目前的執行政策
Get-ExecutionPolicy
如果是這個Restricted或其他無法啟用的類型輸入這串
Set-ExecutionPolicy RemoteSigned
確認更改後就能在輸入
json-server --watch 你的檔名.json
好了今天就這樣啦~~